;-> MIDIConstants by Siefano Maria Regattin
;d> 27 Febbraio 2002 da MIDIDefs.h
;m> 1,15,16 marzo 2002
;m> 10 aprile 2002
;------------------

;***************
;* C. A. M. D. *
;******************************************************
;* CMU AMIGA Midi Driver - Carnegie Mellon University *
;******************************************************
;* 1988 - Commodore AMIGA *
;***********************************************
;* Design & Development  - Roger B. Dannenberg *
;***********************************************
;* - Jean-Christophe Dhellemmes *
;********************************
;* - Bill Barton *
;*********************************************
;* Copyright 1989 Carnegie Mellon University *
;*********************************************

;****************
;*              *
;* Status Bytes *
;*              *
;****************

;* channel voice messages (1sssnnnn) (OR with channel number) *
#_NoteOff=-128;             $80
#_NoteOn=-112;              $90
#_PolyphonicKeyPressure=-96;$A0
#_ControlChange=-80;        $B0
#_Mode=-80;                 $B0
#_ProgramChange=-64;        $C0
#_ChannelKeyPressure=-48;   $D0
#_PitchBend=-32;            $E0

#_StatusBits=-16;           $F0
#_ChannelBits=%1111;        $0F

;* system common messages (11110sss) *
#_System=-16 ;* min system status byte *
#_SystemExclusive=-16;      $F0
#_QtrFrame=-15;             $F1
#_SongPos=-14;              $F2
#_SongSelect=-13;           $F3
#_TuneReq=-10;              $F6
#_EOX=-9;                   $F7

;* system real time messages (11111sss) *
#_RealTime=$F8 ;* Min real time status byte */
#_Clock=-8;                 $F8
#_Start=-6;                 $F9
#_Continue=-5;              $FA
#_Stop=-4;                  $FB
#_ActiveSense=-2;           $FE
#_Reset=-1;                 $FF


;************************
;*                      *
;* Standard Controllers *
;*                      *
;************************

;* Continuous 14 bit - MSB: 0-1f, LSB: 20-3f */
#_Bank=$00
#_ModulationWheel=$01
#_Breath=$02
#_Foot=$04
#_PortaTime=$05
#_DataEntry=$06
#_Volume=$07
#_Balance=$08
#_Pan=$0A
#_Expression=$0B
#_GeneralOne=$10
#_GeneralTwo=$11
#_GeneralThree=$12
#_GeneralFour=$13

;* Continuous 7 bit (switches: 0-3f=Off, 40-7f=On) */
#_Sustain=$40
#_Portamento=$41
#_Sostenuto=$42
#_SoftPedal=$43
#_HoldTwo=$45
#_GeneralFive=$50
#_GeneralSix=$51
#_GeneralSeven=$52
#_GeneralEight=$53
#_ExtDepth=$5B
#_TremoloDepth=$5C
#_ChorusDepth=$5D
#_CelesteDepth=$5E
#_PhaserDepth=$5f

;* Parameters *
#_DataInc=$60
#_DataDec=$61
#_NRPNL=$62
#_NRPNH=$63
#_RPNL=$64
#_RPNH=$65

#_ControllerMaxValue=$78

;*****************
;*               *
;* Channel Modes *
;*               *
;*****************

#_MinModeValue=$79

#_ResetCtrl=$79
#_Local=$7A
#_AllNotesOff=$7B
#_OmniOff=$7C
#_OmniOn=$7D
#_Mono=$7E
#_Poly=$7F


;********************************
;*                              *
;* Registered Parameter Numbers *
;*                              *
;********************************************************************************
;* these are 16 bit values that need To be separated into two bytes for use with
;* the _RPNH & _RPNL messages using 8 bit math (hi=MRP>>8,lo=MRP_&$ff) as opposed To 7
;* bit math.  This is done so that the defines match the
;* numbers from the MMA.
;* See MIDI 1.0 Detailed Spec v4.0 pp 12, 23 For more info.
;***********************************************************

#_PBSens=$0000
#_FineTune=$0001
#_CourseTune=$0002


;******************************
;*                            *
;* MTC Quarter Frame messages *
;*                            *
;*****************************************
;* Qtr Frame message is F1 0nnndddd where
;*
;* nnn is a message Type defined below
;* dddd is 4 bit Data nibble For those message types
;*
;* Each pair of nibbles is combined by the receiver into a single byte.
;* there are masks and type values defined for some of these Data bytes below.
;******************************************************************************

;* Message Types *
#_FrameL=$00
#_FrameH=$10
#_SecL=$20
#_SecH=$30
#_MinL=$40
#_MinH=$50
#_HourL=$60
#_HourH=$70 ;* also contains time code type *

;* Message Masks */
#_TypeMask=%01110000 ;* mask for type bits in message *
#_DataMask=%00001111 ;* mask for data bits in message *

;* Hour Byte */
#_HourTypeMask=$60 ;* mask for time code type *
#_HourMask=$1f ;* hours mask (range 0-23) *

;* Time code Type values For hour byte */
#_24FramesPerSecond=$00
#_25FramesPerSecond=$20
#_30FramesPerSecondDrop=$40
#_30FramesPerSecondNoDrop=$60

;*********************
;*                   *
;* Sys/Ex ID numbers *
;*                   *
;********************************************************
;* now includes 3 byte extension For the American Group.
;* this new format uses a $00 as the sys/ex id followed by two additional bytes
;* that actually identify the manufacturer.
;* these new extended id constants are 32 bit values with 24 significant bits.
;******************************************************************************

;* north american group (1 byte) *
#_MID_Sequential=$01
#_MID_IDP=$02
#_MID_OctavePlateau=$03
#_MID_Moog=$04
#_MID_Passport=$05
#_MID_Lexicon=$06
#_MID_Kurzweil=$07
#_MID_Fender=$08
#_MID_Gulbransen=$09
#_MID_AKG=$0A
#_MID_Voyce=$0B
#_MID_Waveframe=$0C
#_MID_ADA=$0D
#_MID_Garfield=$0E
#_MID_Ensoniq=$0F
#_MID_Oberheim=$10
#_MID_Apple=$11
#_MID_GreyMatte=$12
#_MID_PalmTree=$14
#_MID_JLCooper=$15
#_MID_Lowrey=$16
#_MID_AdamsSmith=$17
#_MID_Emu=$18
#_MID_Harmony=$19
#_MID_ART=$1A
#_MID_Baldwin=$1B
#_MID_Eventide=$1C
#_MID_Inventronics=$1D
#_MID_Clarity=$1F

;* north american group (3 bytes) *
#_MID_XAmerica=$00 ;* north american 3 bytes prefix *

#_MIDX_DigitalMusic=$000007
#_MIDX_Iota=$000008
#_MIDX_Artisyn=$00000A
#_MIDX_IVL=$00000B
#_MIDX_SouthernMusic=$00000C
#_MIDX_LakeButler=$00000D
#_MIDX_DOD=$000010
#_MIDX_PerfectFret=$000014
#_MIDX_KAT=$000015
#_MIDX_Opcode=$000016
#_MIDX_Rane=$000017
#_MIDX_SpatialSound=$000018
#_MIDX_KMX=$000019
#_MIDX_Brenell=$00001A
#_MIDX_Peavey=$00001B
#_MIDX_360=$00001C
#_MIDX_Axxes=$000020
#_MIDX_CAE=$000026
#_MIDX_Cannon=$00002B
#_MIDX_BlueSkyLogic=$00002E
#_MIDX_Voce=$000031

;* european group */
#_MID_SIEL=$21
#_MID_Synthaxe=$22
#_MID_Hohner=$24
#_MID_Twister=$25
#_MID_Solton=$26
#_MID_Jellinghaus=$27
#_MID_Southworth=$28
#_MID_PPG=$29
#_MID_JEN=$2A
#_MID_SSL=$2B
#_MID_AudioVeritrieb=$2C
#_MID_Elka=$2F
#_MID_Dynacord=$30
#_MID_Clavia=$33
#_MID_Soundcraft=$39

;* japanese group */
#_MID_Kawai=$40
#_MID_Roland=$41
#_MID_Korg=$42
#_MID_Yamaha=$43
#_MID_Casio=$44
#_MID_Kamiya=$46
#_MID_Akai=$47
#_MID_JapanVictor=$48
#_MID_Mesosha=$49

;* universal ID Numbers *
#_MID_UNC=$7D
#_MID_UNRT=$7E
#_MID_URT=$7f

;*****************
;*               *
;* Miscellaneous *
;*               *
;*****************

#_MiddleC=60 ;* Middle C note value *
#_DefaultVelocity=64 ;* default note ON or OFF velocity *
#_PitchBendCenter=$2000 ;* pitch bend center position as a 14 bit word *
#_MClksPerQtr=24  ;* MIDI clocks per quarter note *
#_MClksPerSP=6 ;* MIDI clocks per song position index *
#_PanAndSimilarCenter=64 ;* center value for controllers like pan and balance *
